草庐IT

java - 用于管理异常的类

全部标签

ruby-on-rails - "No explicit conversion of Symbol into String"用于 rails 4.0.1 中的新记录(仅限)

在我的Rails4升级之后,尝试为我的任何ActiveRecord类创建一个新记录NoexplicitconversionofSymbolintoString例如,这里是我的链接的links_params方法deflink_paramsparams.require(:link).permit(:url_address,:group_id,:alt_text,:version_number,:position,:content_date,:verified_date)#Thisisline157end#line118is:@link=Link.new(link_params)但是我明白了

ruby-on-rails - 从 Controller Action 中调用/lib 中的类

嗨,我对此有点困惑。我要解决的是我在lib/目录中有一个名为ticket_pdf.rb的文件,我计划为我的应用程序生成一些发票PDF。我想调用此类的一个函数来从我的Controller操作中生成PDF。ticket_pdf.rb看起来像这样classTicketPDFdefgenerate_pdf(purchase)puts"TicketID=#{purchase.ID}"endend在Controller中我执行此操作。classCustomer::MyController当我尝试创建一个像这样的对象时,它给我一个像这样的500错误。uninitializedconstantCust

ruby-on-rails - 如何在 Rails 3 中将 i18n 用于我的错误页面?

我需要在我的public/404.html页面上使用I18napi。如果我添加到404.html页面:我收到如下错误消息:Cannotuset('.page_were_looking')shortcutbecausepathisnotavailable如何使用此页面的I18n功能? 最佳答案 Rails通过使用类似public/500.de.html的路径提供错误页面来支持多语言,其中de是语言环境。在Rails本身已基本崩溃的情况下使用i18n是没有意义的。如果Rails无法获得正确的本地化错误文件,它或服务器可能会提供publi

Ruby,如何创建一个 Rack::Request 用于测试目的?

我有一个库,它接受一个Rack::Request并在其上做一些事情。我想通过单元测试而不是功能测试来测试它。所以我必须自己创建一个Rack::Request实例,我该怎么做? 最佳答案 Rack本身包含一些针对Rack::Request的单元测试,您可以将它们用作起点(example)。Rack::Request.new(Rack::MockRequest.env_for("http://example.com:8080/",{"REMOTE_ADDR"=>"10.10.10.10"}))

ruby-on-rails - Ruby无一异常(exception)地获得回溯

我有一个RubyonRails应用程序,其中一个模型的验证失败。对于此验证可能失败的地方,代码库有不同的入口点。我有兴趣弄清楚它是从哪里来的。由于这是一个简单的验证方法,因此不涉及任何异常,我只是从方法中返回false并且保存失败。目前是否还可以记录回溯以查明此验证源自哪个服务/路由,以便我可以查看是什么导致此对象的状态发生更改以使其验证失败? 最佳答案 你可以试试caller():deffoo2putscallerenddeffoofoo2#line5endfoo#line7结果:test.rb:5:in`foo'test.rb:

ruby-on-rails - 相关模型的每个实例的事件管理范围

我对动态事件管理范围有疑问。我正在尝试为我的应用程序中的“项目”的每个“经理”创建一个范围。但是,当创建新经理(或分配给项目)时,范围似乎不会更新,但如果我重新启动服务器,它们会更新。所以代码本身“有效”,但显然不是我想要的方式。我是ruby​​/rails新手,所以我不确定是否需要做一些事情以某种方式“刷新”范围。仅供引用,我在带有ActiveAdmin的HerokuCedar上使用Rails3.2这是有问题的代码(有效但仅在服务器重新启动后引入新的管理器):Manager.find_eachdo|m|scopem.first_namedo|projects|projects.whe

ruby - 配置 RSpec 以将 Capybara.javascript_driver 用于所有请求规范

是否可以全局配置RSpec以对所有请求规范使用Capybara的(默认或自定义)JavaScript驱动程序?我们有时会忘记手动将js:true添加到每个请求规范中,这有点烦人。 最佳答案 在spec_helper.rb中,设置以下内容:config.before(:each)doifexample.metadata[:type]==:requestCapybara.current_driver=:selenium#orequivalentjavascriptdriveryouareusingelseCapybara.use_def

ruby-on-rails - 强制 Rails 3 动态查找器抛出 RecordNotFound 异常?

是否可以强制Rails动态查找器在找不到结果时抛出ActiveRecord::RecordNotFound异常而不是返回nil?例如,如果名称为“Nuka–Cola”的饮料不存在:@not_found=Beverage.find_by_name('Nuka–Cola')而不是拥有@not_found==nil可以吗.find_by_name('Nuka–Cola')方法调用抛出ActiveRecord::RecordNotFound异常?或者我是否必须检查nil并手动抛出异常? 最佳答案 使用bang版本。@not_found=Be

ruby - Un-monkey 修补 Ruby 中的类/方法

我正在尝试对我用Ruby编写的一段调用File.open的代码进行单元测试。为了模拟它,我将File.open修改为以下内容:classFiledefself.open(name,&block)ifname.include?("retval")return"0\n"elsereturn"1\n"endendend问题是我正在使用rcov来运行整个过程,因为它使用File.open来编写代码覆盖率信息,它获取的是monkeypatched版本而不是真实版本。我怎样才能取消monkeypatch这个方法以将它恢复到原来的方法?我试过乱用alias,但到目前为止无济于事。

Ruby,哪个异常最适合处理未设置的环境变量?

我编写的脚本在启动时运行,需要设置环境变量,但是Ruby的Exceptions,是最好的?我使用了LoadError,我只是想尽可能具有描述性并遵循适当的约定。其次,除了检查环境变量的长度外,我找不到其他方法来查看是否设置了环境变量,但这似乎不太优雅。beginraiseLoadErrorifENV['FOO'].to_s.length==0system"openhttp://example.com/"+ENV['FOO']rescueException=>eputs"=>#{e}FOOenvironmentvariablenotset"end 最佳答案